popover: Update scrollable on relative-to hierarchy changes
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 28 Sep 2016 17:56:49 +0000 (19:56 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 29 Sep 2016 10:46:34 +0000 (12:46 +0200)
The relative-to widget may be reparented itself into/out of a
scrollable. In this cases make the hierachy-changed handler to
unset the parent scrollable when unparented, and look up again
the parent scrollable after it's reparented.

https://bugzilla.gnome.org/show_bug.cgi?id=771812

gtk/gtkpopover.c

index 94da42204ce6cb07e373d027c548f9a2f6ae53aa..abfb90f0b27dc5cba14741a2d373bbf0df1d030d 100644 (file)
@@ -1821,11 +1821,15 @@ _gtk_popover_parent_hierarchy_changed (GtkWidget  *widget,
   if (priv->window)
     _gtk_window_remove_popover (priv->window, GTK_WIDGET (popover));
 
+  if (priv->parent_scrollable)
+    gtk_popover_set_scrollable_full (popover, NULL);
+
   priv->window = new_window;
 
   if (new_window)
     {
       _gtk_window_add_popover (new_window, GTK_WIDGET (popover), priv->widget, TRUE);
+      gtk_popover_update_scrollable (popover);
       gtk_popover_update_position (popover);
     }